package com.open.capacity.reimburse.excel;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 年度预算表
 *
 * @author
 * @email
 * @date 2021-03-11 10:08:47
 */

@Data
public class BudgetExcelModel implements IExcelDataModel, IExcelModel {
    //行号
    private Integer rowNum;
    //错误消息
    private String errorMsg;

    private static final long serialVersionUID = 1L;


    @Excel(name = "年度")
    private Integer kjnd;
    @Excel(name = "年度预算编号")
    private String budgetCode;
    @Excel(name = "额度编号")
    private String quotaCode;
    @Excel(name = "处室名称")
    private String office;
    @Excel(name = "部门编码")
    private String departCode;
    @Excel(name = "部门名称")
    private String departName;
    @Excel(name = "单位编码")
    private String agencyCode;
    @Excel(name = "单位名称")
    private String agencyName;
    @Excel(name = "资金来源")
    private String zjly;
    @Excel(name = "指标来源")
    private String zbly;
    @Excel(name = "科目类型")
    private String kmlx;
    @Excel(name = "功能科目编码")
    private String gnflkmCode;
    @Excel(name = "功能科目名称")
    private String gnflkmName;
    @Excel(name = "部门预算经济科目编码")
    private String departJjkmCode;
    @Excel(name = "部门预算经济科目名称")
    private String departJjkmName;
    @Excel(name = "政府预算经济科目编码")
    private String govJjkmCode;
    @Excel(name = "政府预算经济科目名称")
    private String govJjkmName;
    @Excel(name = "一级项目名称")
    private String firstXmName;
    @Excel(name = "项目名称")
    private String xmName;
    @Excel(name = "项目类别编码")
    private String xmlbCode;
    @Excel(name = "项目类别名称")
    private String xmlbName;
    @Excel(name = "项目类别明细编码")
    private String xmlbmxCode;
    @Excel(name = "项目类别明细名称")
    private String xmlbmxName;
    @Excel(name = "辅助信息")
    private String fzxx;
    @Excel(name = "专项资金")
    private String zxzj;
    @Excel(name = "指标级次编码")
    private String zbjcCode;
    @Excel(name = "指标级次")
    private String zbjcName;
    @Excel(name = "预算类型编码")
    private String yslxCode;
    @Excel(name = "预算类型名称")
    private String yslxName;
    @Excel(name = "上级指标资金编码")
    private String supZbzjCode;
    @Excel(name = "省厅下达文号")
    private String officeNumber;
    @Excel(name = "项目标识")
    private String xmbs;
    @Excel(name = "年初预算")
    private BigDecimal ncys;
    @Excel(name = "上年结转")
    private BigDecimal snjz;
    @Excel(name = "年度预算")
    private BigDecimal ndys;
    @Excel(name = "已下达预算数")
    private BigDecimal yxdyss;
    @Excel(name = "可支出预算")
    private BigDecimal kzcys;

//    @ExcelEntity(id = "Adjust", name = "预算调剂、划转", show = true)
//    private Adjust adjust;

    @Excel(name = "调增")
    private BigDecimal adjustAdd;
    @Excel(name = "调减")
    private BigDecimal adjustReduce;
    @Excel(name = "调增在途")
    private BigDecimal adjustReduceing;
    @Excel(name = "划入")
    private BigDecimal adjustIn;
    @Excel(name = "划出")
    private BigDecimal adjustOut;
    @Excel(name = "划出在途")
    private BigDecimal adjustOuting;

//    @ExcelEntity(id = "Issued", name = "已下达计划", show = true)
//    private Issued issued;

    @Excel(name = "已下达计划合计")
    private BigDecimal issuedTotal;
    @Excel(name = "已下达直接支付计划")
    private BigDecimal issuedZjzf;
    @Excel(name = "已下达授权支付计划")
    private BigDecimal issuedSqzf;
    @Excel(name = "计划在途")
    private BigDecimal issuedIng;




//    @ExcelEntity(id = "Pay", name = "支出", show = true)
//    private Pay pay;
    @Excel(name = "支出合计")
    private BigDecimal payTotal;
    @Excel(name = "直接支付")
    private BigDecimal payZjzf;
    @Excel(name = "授权支付")
    private BigDecimal paySqzf;
    @Excel(name = "统发工资支付")
    private BigDecimal payTfgzzf;
    @Excel(name = "一般支出")
    private BigDecimal payGeneral;
    @Excel(name = "补助支出")
    private BigDecimal payBzzc;
    @Excel(name = "列支支出")
    private BigDecimal payLzzc;

    @Excel(name = "支出在途")
    private BigDecimal payIng;


//    @Data
//    @ExcelTarget("Adjust")
//    public class Adjust implements IExcelDataModel, IExcelModel {
//        //行号
//        private Integer rowNum;
//        //错误消息
//        private String errorMsg;
//
//        private static final long serialVersionUID = 1L;
//
//        @Excel(name = "调增")
//        private BigDecimal adjustAdd;
//        @Excel(name = "调减")
//        private BigDecimal adjustReduce;
//        @Excel(name = "调增在途")
//        private BigDecimal adjustReduceing;
//        @Excel(name = "划入")
//        private BigDecimal adjustIn;
//        @Excel(name = "划出")
//        private BigDecimal adjustOut;
//        @Excel(name = "划出在途")
//        private BigDecimal adjustOuting;
//    }
//
//    @Data
//    @ExcelTarget("Issued")
//    public class Issued implements IExcelDataModel, IExcelModel {
//        //行号
//        private Integer rowNum;
//        //错误消息
//        private String errorMsg;
//
//        private static final long serialVersionUID = 1L;
//
//
//        @Excel(name = "合计")
//        private BigDecimal issuedTotal;
//        @Excel(name = "已下达直接支付计划")
//        private BigDecimal issuedZjzf;
//        @Excel(name = "已下达授权支付计划")
//        private BigDecimal issuedSqzf;
//    }
//
//    @Data
//    @ExcelTarget("Pay")
//    public class Pay implements IExcelDataModel, IExcelModel {
//        //行号
//        private Integer rowNum;
//        //错误消息
//        private String errorMsg;
//
//        private static final long serialVersionUID = 1L;
//
//
//        @Excel(name = "合计")
//        private BigDecimal payTotal;
//        @Excel(name = "直接支付")
//        private BigDecimal payZjzf;
//        @Excel(name = "授权支付")
//        private BigDecimal paySqzf;
//        @Excel(name = "统发工资支付")
//        private BigDecimal payTfgzzf;
//        @Excel(name = "一般支出")
//        private BigDecimal payGeneral;
//        @Excel(name = "补助支出")
//        private BigDecimal payBzzc;
//        @Excel(name = "列支支出")
//        private BigDecimal payLzzc;
//
//    }
}
